package me.goldze.mvvmhabit.utils;
import android.text.TextUtils;

import com.google.gson.Gson;
import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;

import org.json.JSONObject;

import java.util.Collections;
import java.util.List;

/***
 * 自动解析函数
 */
public final class JsonEasy {

    public static String getString(String json, String key) {
        if (!TextUtils.isEmpty(json) && !TextUtils.isEmpty(key)) {
            try {
                // 创建一个JsonParser对象
                JsonParser parser = new JsonParser();
                // 解析JSON字符串
                JsonElement jsonElement = parser.parse(json);
                // 获取JSON对象
                JsonObject jsonObject = jsonElement.getAsJsonObject();
                if (jsonObject != null) {
                    // 获取内部的JSON对象作为字符串
                    JsonElement innerJsonElement = jsonObject.get(key);
                    // 将内部JSON对象转换为字符串
                    String innerJsonString = innerJsonElement.toString();
                    String result = innerJsonString;
                    return result;
                }
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
        return null;
    }

    public static <T> T toObject(String json, Class<T> clss) {
        if (!TextUtils.isEmpty(json)) {
            try {
                T obj = new Gson().fromJson(json, clss);
                return obj;
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
        return null;
    }

    public static <T> List<T> toList(String json, Class<T> clss) {
        if (!TextUtils.isEmpty(json)) {
            try {
                List<T> objList = Collections.singletonList(new Gson().fromJson(json, clss));
                return objList;
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
        return null;
    }
}
